На этот вопрос уже есть ответы здесь: Express js - невозможно перенаправить (4 ответа) Закрыт 7 лет назад. Я использую passwordjs с промежуточным программным обеспечением ниже. Предполагается, чтобы проверить, входит ли пользователь в систему, когда он запрашивает определенные вещи. Если он не вошел в систему, он должен быть перенаправлен на страницу входа. У меня есть следующий маршрут запроса: app.put ('/ fantasyteams /: fantasyTeamId', auth.requiresLogin, fantasyteams.update); Этот маршрут будет вызываться, когда пользователь пытается обновить ресурс под названием Fantasy Team на веб-сайте. auth.requiresLogin - это промежуточное ПО: exports.requiresLogin = function (req, res, next) { if (req.isAuthenticated ()) { вернуться далее () } возврат res.redirect ("/ вход"); }; После входа в систему я смоделировал истечение срока сеанса, удалив cookie сеанса. После этого через веб-сайт я сделал запрос PUT '/ fantasyteams / 123', чтобы обновить команду фэнтези номер 123. fantasyteams.update - это просто операция сохранения mongodb / mongoose: export.update = function (req, res) { var fantasyteam = req.fantasyteam; fantasyteam = _.extend (fantasyteam, req.body); fantasyteam.save (function (err) { res.jsonp (fantasyteam); }); }; Как и ожидалось, обработчик маршрута (app.put ...) выше поймал запрос, передал его промежуточному программному обеспечению auth.requiresLogin, чтобы проверить, вошел ли пользователь в систему. Таким образом, оказывается, что пользователь не вошел в систему, так как я удалил его файл cookie сеанса. res.redirect вызывается должным образом. Однако веб-сайт не перенаправляет на страницу входа. Я вижу это в журналах команд node.js: PUT / вход 404 328 мс Что я сделал не так?
2021-02-25 08:21:36
Похоже, проблема в том, что у вас нет обработчика маршрута для PUT / входа. Исходный запрос был помещен, поэтому, когда он перенаправляет, он все еще является частью того же запроса на размещение от браузера. Просто добавьте обработчик для put / post / что угодно с app.all ('/ signin') 3 | Не тот ответ, который вы ищете? Посмотрите другие вопросы с метками node.js session cookies или укажите свой вопрос.